//编写一个程序，从标准输入读取一个字符串，存入一个动态分配的字符数组中。描述你的程序如何处理变长输入。测试你的程序，输入一个超出你分配的数组长度的字符串。
#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;
class ch {
public:
	ch(int a=1,int b=0):size(a),top(b) {
		arr = new char[size];
	}
	void check() {
		if(top>=(size-1)){
			char *new_arr = new char[size * 2];
			strcpy(new_arr, arr);
			delete [] arr;
			arr = new_arr; 
		}

	}
	void push_back() {
		char c;
		while (cin.get(c)){
			//check();
			arr[top++] = c;
			}
		for (int i = 0;i<(size-1); i++) {
			cout << arr[i];
		}
	}
	bool isable(int i) {
		return i <= (size - 1);
	}
	char *arr;
    int size;
	int top;

};
int main() {
	ch test;
	cout << test.size;
	test.push_back();

}
//int main()
//{
//	char c;
//	char *r = new char[20];
//	int l = 0;
//	while (cin.get(c)) {
//		if (isspace(c))
//			break;
//		r[l++] = c;
//		if (l == 20) {
//			cout << "delete" << endl;
//			break;
//		}
//	}
//	r[l] = 0;
//	cout << r << endl;
//	delete[] r;
//	return 0;
//}